package cn.stylefeng.guns.modular.gridsystem.service;

import cn.stylefeng.guns.core.pojo.page.PageResult;
import cn.stylefeng.guns.modular.gridsystem.entity.BizCollectorConfig;
import cn.stylefeng.guns.modular.gridsystem.model.param.BizCollectorConfigParam;
import cn.stylefeng.guns.modular.gridsystem.model.param.CollectorConfigParam;
import cn.stylefeng.guns.modular.gridsystem.model.result.BizCollectorConfigResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 8路采集器配置 服务类
 *
 * @author ssy
 * @date 2022/02/18 13:58
 */
public interface BizCollectorConfigService extends IService<BizCollectorConfig> {

    /**
     * 分页查询8路采集器配置
     *
     * @param bizCollectorConfigParam 查询条件入参
     *                                gatewayId          网关id
     * @return PageResult<BizCollectorConfig>
     */
    PageResult<BizCollectorConfig> page(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 条件查询8路采集器配置
     *
     * @param bizCollectorConfigParam 查询条件入参
     *                                gatewayTypeCode    网关类型编码
     *                                code               网关编号
     *                                gatewayId          网关id
     * @return List<BizCollectorConfig>
     */
    List<BizCollectorConfig> list(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 新增8路采集器配置
     *
     * @param bizCollectorConfigParam 新增入参
     *                                id                主键id
     *                                configName        名称
     *                                code              编码
     *                                value             值
     *                                status            状态
     *                                remark            备注
     *                                gatewayId         网关id
     *                                gatewayTypeCode   网关类型编码
     */
    void add(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 删除八路采集器
     *
     * @param bizCollectorConfigParam 编辑入参
     *                                id            主键id
     */
    void delete(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 编辑8路采集器配置
     *
     * @param bizCollectorConfigParam 编辑入参
     *                                id            主键id
     *                                configName    名称
     *                                code          编码
     *                                value         值
     *                                status        状态
     *                                remark        备注
     *                                gatewayId     网关id
     */
    void edit(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 根据id查看详情8路采集器配置
     *
     * @param bizCollectorConfigParam 详情入参
     *                                id    主键id
     * @return BizCollectorConfigResult
     */
    BizCollectorConfigResult detail(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 修改状态（字典 0正常 1停用 2删除）
     *
     * @param bizCollectorConfigParam 修改状态入参
     *                                id        主键id
     *                                status    状态
     */
    void changeStatus(BizCollectorConfigParam bizCollectorConfigParam);

    /**
     * 根据网关id 和网关code  获取 8路采集器配置 值
     *
     * @param gatewayId 网关ID
     * @param code      编码
     * @return String   8路采集器配置 值
     */
    String getByCode(Integer gatewayId, String code);

    /**
     * 根据code批量新增八路采集器信息
     *
     * @param collectorConfigParam 批量新增入参
     */
    void addConfig(CollectorConfigParam collectorConfigParam);
}
